home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 351-375 / disk_351 / pdc / bin.lzh / lib / src / CreateTask.c < prev    next >
C/C++ Source or Header  |  1990-04-06  |  826b  |  29 lines

  1. #include <exec/memory.h>
  2. #include <exec/tasks.h>
  3.  
  4. struct Task 
  5. *CreateTask (myTaskName, myTaskPriority, task_EntryPoint, task_stacksize)
  6. char *myTaskName;
  7. UBYTE myTaskPriority;
  8. APTR task_EntryPoint;
  9. ULONG task_stacksize;
  10. {
  11.     struct Task *myTask;
  12.     ULONG dataSize = (task_stacksize & 0x0FFFFFC) + 1;
  13.  
  14.     myTask = AllocMem (sizeof (*myTask) + dataSize, MEMF_CLEAR|MEMF_PUBLIC );
  15.  
  16.     if (myTask != 0L) {
  17.         myTask->tc_SPLower = (APTR) (myTask + sizeof(*myTask));
  18.         myTask->tc_SPUpper = (APTR) ((myTask->tc_SPLower + dataSize) & 0xFFFFFE);
  19.         myTask->tc_SPReg = (APTR) myTask->tc_SPUpper;
  20.         myTask->tc_Node.ln_Type = NT_TASK;
  21.         myTask->tc_Node.ln_Pri = myTaskPriority;
  22.         myTask->tc_Node.ln_Name = myTaskName;
  23.  
  24.         AddTask (myTask, task_EntryPoint, 0);
  25.         }
  26.  
  27.     return (myTask);
  28. }
  29.